# Qiyu_Right权限类的使用
祺佑框架定义了9个权限属性,如下图所示
UI表单,BLL层,权限类都有定义了这9个属性
属性 | 取值 | 说明 |
---|---|---|
isAdd | 逻辑型 .T.(默认),.F. | 新增权限 |
isEdit | 逻辑型 .T.(默认),.F. | 编辑权限 |
isDel | 逻辑型 .T.(默认),.F. | 删除权限 |
isCheck | 逻辑型 .T.(默认),.F. | 审核权限 |
isKeep | 逻辑型 .T.(默认),.F. | 记账权限 |
isPrint | 逻辑型 .T.(默认),.F. | 打印权限 |
isUd1 | 逻辑型 .T.(默认),.F. | 自定权限1 |
isUd2 | 逻辑型 .T.(默认),.F. | 自定权限2 |
isUd3 | 逻辑型 .T.(默认),.F. | 自定权限3 |
目前祺佑三层开发框架的权限有两种:
控制操作权限
- 依据表单的操作权限.称之为模块权限 如操作员:王小二具有采购入库单的新增、修改、删除权限. 权限所控制的对象是采购入库单.
- 依据表单所操作的数据字段属性. 称之为数据权限 如操作员:王小二具有采购入库单 部门编号为:01 的新增、修改、删除权限。 权限所控制部门编号=01 采购入库单的 新增、修改、删除。 也就是其它部门他不具有权限。可见数据权限比模块权限更为细分。
浏览数据权限 浏览权限:是对数据一部分拥有权限。比如王小二可以查看采购一部的所有入库单。
操作权限和浏览控件的表现
- 控制界面上控件的开闭 UI表单的控件的开闭由表单的权限属性如isAdd等来控制。
- 控制方法的调用成功与否。 BLL层的方法New Edit Delete Save 的调用分别受BLL相应的权限属性isAdd isEdit isDel 控制。 而余下的属性可以自行用于判断是否具有权限调用。
UI BLL层与Qiyu_RightManage权限类的配合 Qiyu_DataForm,Qiyu_DataEnvironment,Qiyu_Navigation中有定义oRight属性
当它们的oRight属性被赋于权限实例时,表单或BLL层的权限属性就由Qiyu_RightManage 实例来接管。 UI层由Qiyu_DataForm派生的qiyu_form_singcursor实现 BLL业务层由Qiyu_DataEnvironment的派生类实现 数据的浏览权限主要由导航类和DAL_PRG类来实现,其调用了权限类的 GetRightlist方法,返回权限条件
子类举例:
*--由父类派生一个权限操作类
Define Class QX_SJQX As Qiyu_RightManage Of Locfile("Qiyu_RightManager.prg")
*--勾子方法 用户自定义
*--功能:设置权限属性.
PROCEDURE GetRightStatus
this.isadd=.f.
this.isedit=.f.
this.isdel =.f.
EndProc
EndDefine
*--在表单的init方法中
thisform.oright=NEWOBJECT("qx_sjqx","qx_sjqx.prg")
thisform.RightRefresh() &&权限刷新
*--thisform.oright.SetRightStatus(thisform) &&继承父类的SetRightStatus方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16